/* ************************************************************************

   Copyright: Juan Antonio Aldea Armenteros

   License: GPL v3

   Authors: Juan Antonio Aldea Armenteros

************************************************************************ */

qx.Class.define("jabber.Contacto",
{
  extend : qx.ui.tree.TreeFile,

  construct : function(jid, nombre, estado)
  {
    this.setIcon(null);
    this.setIcon("resource/jabber/status/22/offline.png");
    this.base(arguments);
    this.__jid = jid;
    this.setLabel(nombre);
    this.__nombre = nombre;
    this.__estado = estado;
    this._setEventListeners();
  },

  events : { "abrir_conversacion" : "qx.event.type.Data" },

  members :
  {
    __jid : null,
    __estado : null,
    __nombre : null,


    /**
     * TODOC
     *
     * @return {var} TODOC
     */
    getJid : function() {
      return this.__jid;
    },


    /**
     * TODOC
     *
     * @param jid {var} TODOC
     * @return {void}
     */
    setJid : function(jid) {
      this.__jid = jid;
    },


    /**
     * TODOC
     *
     * @return {var} TODOC
     */
    getNombre : function() {
      return this.__nombre;
    },


    /**
     * TODOC
     *
     * @return {var} TODOC
     */
    getEstado : function() {
      return this.__estado;
    },


    /**
     * TODOC
     *
     * @param estado {var} TODOC
     * @return {void}
     */
    setEstado : function(estado)
    {
      this.__estado = estado;
      this.setIcon(null);

      if (estado == "offline") {
        this.setIcon("resource/jabber/status/22/offline.png");
      } else if (estado == "available") {
        this.setIcon("resource/jabber/status/22/available.png");
      } else if (estado == "dnd") {
        this.setIcon("resource/jabber/status/22/busy.png");
      } else if (estado == "away") {
        this.setIcon("resource/jabber/status/22/away.png");
      } else if (estado == "xa") {
        this.setIcon("resource/jabber/status/22/extended-away.png");
      } else if (estado == "chat") {
        this.setIcon("resource/jabber/status/22/chat.png");
      }
    },


    /**
     * TODOC
     *
     * @param id {var} TODOC
     * @return {var} TODOC
     */
    _createChildListeners : function(id)
    {
      var control;
      if (id == "objeto") {}

      //TODO
      return control || this.base(arguments, id);
    },


    /**
     * TODOC
     *
     * @return {void}
     */
    _setEventListeners : function()
    {
      this.addListener("dblclick", function(e)
      {
        if (this.__estado != "offline")
        {
          this.debug('contacto');

          this.fireDataEvent("abrir_conversacion",
          {
            jid    : this.__jid,
            nombre : this.getLabel()
          });
        }

        e.stop();
      },
      this);
    }
  }
});